Customise palettes and shapes according to the data structure.
rm(list = ls(all = TRUE))
source('01_f-ctions.R')Data files structure: 1st column is SampleName (link to phenodata), followed by measured variables
Path to data: ../input/
fp = file.path('..', 'input')
list.files(fp, pattern = '.txt$')## [1] "data_hormonomics.txt" "data_metabolomics.txt" "data_qPCR.txt"
Path to Phenodata: ../../../
fp = file.path('..', '..', '..')
list.files(fp, pattern = '.txt$')## [1] "phenodata_20221001.txt"
There may be multiple phenodata versions (see pISA-tree INSTRUCTIONS.pdf
In this caste, SampleName is created as: Treatment_Day_PlantNoNo
fn = 'phenodata_20221001.txt'
pheno = data.table::fread(file.path(fp, fn), header = TRUE)
data.table::setDF(pheno)
pheno = pheno[, grep('^SampleName$|^Treatment$|^SamplingDay$|^PlantNo$', colnames(pheno))]
head(pheno)## SampleName Treatment SamplingDay PlantNo
## 1 C_S1_10 C 1 10
## 2 C_S1_7 C 1 7
## 3 C_S1_8 C 1 8
## 4 C_S1_9 C 1 9
## 5 C_S7_11 C 7 11
## 6 C_S7_12 C 7 12
tail(pheno)## SampleName Treatment SamplingDay PlantNo
## 27 H_S8_17 H 8 17
## 28 H_S8_18 H 8 18
## 29 H_S14_19 H 14 19
## 30 H_S14_20 H 14 20
## 31 H_S14_21 H 14 21
## 32 H_S14_22 H 14 22
table(pheno$Treatment, pheno$SamplingDay)##
## 1 7 8 14
## C 4 4 4 4
## H 4 4 4 4
Each condition has 4 replicates
tissue = 'Leaves'
o.l. = 'Hormonomics'fpi = file.path('..', 'input')
fn = 'data_hormonomics.txt'
horm = data.table::fread(file.path(fpi, fn), header = TRUE)
data.table::setDF(horm)
horm = merge(pheno,
horm,
by = 'SampleName',
all.x = FALSE,
all.y = TRUE)
horm = horm[, -grep('SampleName', colnames(horm))]
horm$SamplingDay = as.numeric(horm$SamplingDay)
horm$Treatment = factor(horm$Treatment)
horm = horm[order(horm$Treatment, horm$SamplingDay, horm$PlantNo), ]
horm.long = reshape2::melt(horm[, -c(grep('PlantNo', colnames(horm)))], id.vars=c("Treatment", "SamplingDay"))
horm.long$SamplingDay = as.numeric(horm.long$SamplingDay)
keep2 = grep('PlantNo|Treatment|SamplingDay', colnames(horm), invert = TRUE)myplot.ggplot(df = horm.long, x = horm.long$Treatment, y = horm.long$value,
ncol = ceiling(length(levels(horm.long$variable))/2),
scales.y = "free_y",
title = stringr::str_c(o.l.,
'\n',
stringr::str_c(unique(horm.long$Treatment), collapse=', '),
collapse='' ),
xlab = 'Treatment',
ylab = 'value',
palette = my.ggplot.palette)graphs = horm.long %>%
dplyr::group_by(variable) %>%
rstatix::doo(
~ggpubr::ggdotplot(
data =.,
x = "SamplingDay",
y = "value",
fill = "Treatment",
palette = my.ggplot.palette,
legend = "none",
add = c("jitter", "mean_sd"),
position = position_jitter(0.05),
ggtheme = ggpubr::theme_pubr(),
facet.by = c("Treatment")
)
, result = "plots"
)
variable = levels(graphs$variable)
plots = graphs$plots %>% set_names(variable)
for(var in variable){
graph.i = plots[[var]] +
labs(title = var)
print(graph.i)
} subset = horm
mymat = subset[, keep2]
time.levels = sort(as.numeric(unique(subset$SamplingDay)))
stress.levels = levels(subset$Treatment)
k = 3
NMDS.plots = my.NMDS(mymat = mymat,
subset = subset,
stress.levels = stress.levels,
time.levels = time.levels,
title = o.l.,
k = k) # dimensions
if (k == 3){
cowplot::plot_grid(NMDS.plots[[1]], NMDS.plots[[2]], NMDS.plots[[3]],
NMDS.plots[[4]], NMDS.plots[[5]], NMDS.plots[[6]],
ncol=3, nrow = 2)
} else {
cowplot::plot_grid(NMDS.plots[[1]])
}subset = horm[horm$SamplingDay %in% time.levels[c(1, 4)], ]
mymat = subset[, keep2]
time.levels = sort(as.numeric(unique(subset$SamplingDay)))
stress.levels = levels(subset$Treatment)
k = 3
NMDS.plots = my.NMDS(mymat = mymat,
subset = subset,
stress.levels = stress.levels,
time.levels = time.levels,
title = o.l.,
k = k) # dimensions
if (k == 3){
cowplot::plot_grid(NMDS.plots[[1]], NMDS.plots[[2]], NMDS.plots[[3]],
NMDS.plots[[4]], NMDS.plots[[5]], NMDS.plots[[6]],
ncol=3, nrow = 2)
} else {
cowplot::plot_grid(NMDS.plots[[1]])
}subset = horm[horm$Treatment %in% stress.levels[2], ]
mymat = subset[, keep2]
time.levels = sort(as.numeric(unique(subset$SamplingDay)))
stress.levels = levels(subset$Treatment)
k = 2
NMDS.plots = my.NMDS(mymat = mymat,
subset = subset,
stress.levels = stress.levels,
time.levels = time.levels,
title = o.l.,
k = k) # dimensions
if (k == 3){
cowplot::plot_grid(NMDS.plots[[1]], NMDS.plots[[2]], NMDS.plots[[3]],
NMDS.plots[[4]], NMDS.plots[[5]], NMDS.plots[[6]],
ncol=3, nrow = 2)
} else {
cowplot::plot_grid(NMDS.plots[[1]])
}par(mfrow = c(2,2))
my.cor.plot(mymat = as.matrix(horm[, keep2]),
main = paste(o.l., '(all tp)'),
col = rev(my.heatmap.col1),
order = 'original',
type = 'pearson',
choose = 1)## A visualization of a correlation matrix
my.cor.plot(mymat = as.matrix(horm[, keep2]),
main = paste(o.l., '(all tp)'),
col = rev(my.heatmap.col2),
order = 'original',
type = 'pearson',
choose = 1)## A visualization of a correlation matrix
my.cor.plot(mymat = as.matrix(horm[, keep2]),
main = paste(o.l., '(all tp)'),
col = rev(my.heatmap.col1),
order = 'hclust',
type = 'pearson',
choose = 2)## A visualization of a correlation matrix
my.cor.plot(mymat = as.matrix(horm[, keep2]),
main = paste(o.l., '(all tp)'),
col = rev(my.heatmap.col2),
order = 'hclust',
type = 'pearson',
choose = 2)## A visualization of a correlation matrix
par(mfrow = c(1,1))
my.pairs.panels(df = as.matrix(horm[, keep2]),
method = "pearson",
palette = my.ggplot.palette,
scale = FALSE,
main = paste(o.l., '(all tp)'),
cex.labels = 1,
cex = 1)## SPLOM, histograms and correlations for a data matrix
Here we have one Control and one Stress level - adapt as needed
print(stress.levels)## [1] "C" "H"
Ctrl = as.matrix(horm[horm$Treatment == stress.levels[1], keep2])
Stress = as.matrix(horm[horm$Treatment == stress.levels[2], keep2])
par(mfrow=c(2,2))
my.cor.plot(mymat = Ctrl,
main = 'pearson cor (all tp)\nCtrl',
col = rev(my.heatmap.col1),
order = 'original',
type = 'pearson',
choose = 1)## A visualization of a correlation matrix
my.cor.plot(mymat = Stress,
main = 'pearson cor (all tp)\nStress',
col = rev(my.heatmap.col1),
order = 'original',
type = 'pearson',
choose = 1)## A visualization of a correlation matrix
my.cor.plot(mymat = Ctrl,
main = 'pearson cor (all tp)\nCtrl',
col = rev(my.heatmap.col2),
order = 'original',
type = 'pearson',
choose = 1)## A visualization of a correlation matrix
my.cor.plot(mymat = Stress,
main = 'pearson cor (all tp)\nStress',
col = rev(my.heatmap.col2),
order = 'original',
type = 'pearson',
choose = 1)## A visualization of a correlation matrix
par(mfrow=c(1,1))
palCS = rainbow(length(time.levels))[as.numeric(as.factor(horm[horm$Treatment == stress.levels[1], 2]))]
pie(rep(1, length(time.levels)),
col = unique(palCS),
labels = unique(horm[horm$Treatment == stress.levels[1], 2]),
main = paste(stress.levels, collapse = ' '))my.pairs.panels(df = Ctrl,
method = "pearson",
palette = palCS,
scale = FALSE,
main = 'horm Ctrl (all tp)',
cex.labels = 1.0,
cex = 1)## SPLOM, histograms and correlations for a data matrix
my.pairs.panels(df = Stress,
method = "pearson",
palette = palCS,
scale = FALSE,
main = 'horm Stress (all tp)',
cex.labels = 1.0,
cex = 1)## SPLOM, histograms and correlations for a data matrix
Ctrl = (horm[(horm$Treatment == stress.levels[1]) &
(horm$SamplingDay %in% time.levels[c(1, 4)]), 1:ncol(horm)])
Stress = (horm[(horm$Treatment == stress.levels[2]) &
(horm$SamplingDay %in% time.levels[c(1, 4)]), 1:ncol(horm)])
Ctrl[Ctrl$SamplingDay != 1,]$SamplingDay = 2
Stress[Stress$SamplingDay != 1,]$SamplingDay = 2my.c.list = list (cor(Ctrl[, keep2], use = 'na.or.complete'),
cor(Stress[, keep2], use = 'na.or.complete'))
names(my.c.list) = c('Ctrl', 'Stress')
comb = RcppAlgos::comboGrid(1:length(my.c.list), 1:length(my.c.list), repetition = FALSE)
for (i in 1:nrow(comb)){
cat('blue'(names(my.c.list)[comb[i,1]], names(my.c.list)[comb[i,2]], '\n'))
a = my.c.list[[comb[i,1]]]
b = my.c.list[[comb[i,2]]]
plot = my.pheatmap(df = a,
main = names(my.c.list)[comb[i,1]],
col = rev(my.heatmap.col1),
breaks = setdiff(seq(-1, 1, 0.1), 0),
silent = TRUE)
myplots = list(plot[[4]])
plot = my.pheatmap(df = a,
main = names(my.c.list)[comb[i,1]],
col = rev(my.heatmap.col2),
breaks = setdiff(seq(-1, 1, 0.1), 0),
silent = TRUE)
myplots[[2]] = (plot[[4]])
plot = my.pheatmap(df = b,
main = names(my.c.list)[comb[i,2]],
col = rev(my.heatmap.col1),
breaks = setdiff(seq(-1, 1, 0.1), 0),
silent = TRUE)
myplots[[3]] = (plot[[4]])
plot = my.pheatmap(df = b,
main = names(my.c.list)[comb[i,2]],
col = rev(my.heatmap.col2),
breaks = setdiff(seq(-1, 1, 0.1), 0),
silent = TRUE)
myplots[[4]] = (plot[[4]])
diff = abs(a - b)
plot = my.pheatmap(df = diff,
col = rev(my.dist.col),
main = paste0('Diffrence ',
names(my.c.list)[comb[i,1]], ' - ',
names(my.c.list)[comb[i,2]]),
breaks = seq(0, 2, 0.2),
silent = TRUE)
myplots[[5]] = (plot[[4]])
plot = my.pheatmap(df = diff,
col = rev(my.dist.col2),
main = paste0('Diffrence ',
names(my.c.list)[comb[i,1]], ' - ',
names(my.c.list)[comb[i,2]]),
breaks = seq(0, 2, 0.2),
silent = TRUE)
myplots[[6]] = (plot[[4]])
gridExtra::grid.arrange(gridExtra::arrangeGrob(myplots[[1]], myplots[[3]], myplots[[5]], ncol=3),
gridExtra::arrangeGrob(myplots[[2]], myplots[[4]], myplots[[6]], ncol=3),
nrow = 2)
}## Ctrl Stress
data = rbind(Ctrl, Stress)
tmp = c(rep('Ctrl', nrow(Ctrl)),
rep('Stress', nrow(Stress)))
data$Treatment = tmp
data$Treatment = paste(data$Treatment, data$SamplingDay, sep = '_')
cat(blue('Time defined: 1\n'))## Time defined: 1
data.1 = data[data$SamplingDay == 1, ]
data.1.1 = data.1[data.1$Treatment %in% c('Ctrl_1', 'Stress_1'), ]
stat.test.1.1 = my.customised.t.test(data = data.1.1[, -grep('PlantNo|SamplingDay', colnames(data.1.1))],
var.levels = colnames(data.1.1[, keep2]),
stress.levels = unique(data.1.1$Treatment),
plot.violin = FALSE,
plot.box = FALSE,
plot.dot = TRUE,
single = TRUE,
y.lab = o.l.,
p.cex.labels = 1,
p.cex = 0.5,
p.palette = my.ggplot.palette)cat(blue('Time defined: 2\n'))## Time defined: 2
data.2 = data[data$SamplingDay == 2, ]
data.2.1 = data.2[data.2$Treatment %in% c('Ctrl_2', 'Stress_2'), ]
stat.test.2.1 = my.customised.t.test(data = data.2.1[, -grep('PlantNo|SamplingDay', colnames(data.2.1))],
var.levels = colnames(data.2.1[, keep2]),
stress.levels = unique(data.2.1$Treatment),
plot.violin = FALSE,
plot.box = FALSE,
plot.dot = TRUE,
single = TRUE,
y.lab = o.l.,
p.cex.labels = 1,
p.cex = 0.5,
p.palette = my.ggplot.palette)stat.test = rbind(stat.test.1.1,
stat.test.2.1)
data.table::setDT(stat.test)
stat.test.leaves.hormonomics = stat.test
ind = (grep('groups', colnames(stat.test.leaves.hormonomics)))
stat.test.leaves.hormonomics = stat.test.leaves.hormonomics[, -..ind]
fpo = file.path('..', 'reports')
fn = paste0(tissue, '-', o.l., '_t.tests.txt')
write.table(stat.test.leaves.hormonomics,
file = file.path(fpo, fn),
append = FALSE,
quote = FALSE,
sep = "\t",
eol = "\n",
na = "NA",
dec = ".",
row.names = TRUE,
col.names = TRUE,
qmethod = 'escape',
fileEncoding = "UTF-8")rcorr Computes a matrix of Pearson’s r or Spearman’s rho rank correlation coefficients for all possible pairs of columns of a matrix. Missing values are deleted in pairs rather than deleting all rows of x having any missing variables. Ranks are computed using efficient algorithms (see reference 2), using midranks for ties.
my.heatmaply.cor(df = data[, keep2],
type = 'pearson',
dist_method = 'minkowski',
hclust_method = 'ward.D2',
main = paste(o.l., 'Treatment [start, stop]\nrcorr, p-val, minkowski, Ward.2'),
colors = rev(my.heatmap.col1))## Matrix of Correlations and P-values with Cluster heatmap based on plotly
my.heatmaply.cor(df = data[, keep2],
type = 'pearson',
dist_method = 'minkowski',
hclust_method = 'ward.D2',
main = paste(o.l., 'Treatment [start, stop]\nrcorr, p-val, minkowski, Ward.2'),
colors = rev(my.heatmap.col2))## Matrix of Correlations and P-values with Cluster heatmap based on plotly
leaf.horm.log2FC = my.logFC(Ctrl = Ctrl,
Stress = Stress,
tp = 2,
title = o.l.)mm = list(
l = 0,
r = 0,
b = 0,
t = 40
)
m = max(abs(min(leaf.horm.log2FC, na.rm = TRUE)), abs(max(leaf.horm.log2FC, na.rm = TRUE)))
p = plot_ly(z = leaf.horm.log2FC,
type = "heatmap",
y = rownames(leaf.horm.log2FC),
x = colnames(leaf.horm.log2FC),
colors = rev(brewer.pal(n, 'RdBu')),
zmax = m,
zmid = 0,
zmin = -m,
width = 600,
height = 300
) %>%
layout(title = 'Leaf Hormonomics',
margin = mm)
print(p)
fpo = file.path('..', 'reports')
fn = 'Leaf-Hormonomics_logFC.html'
fn = paste0(tissue, '-', o.l., '_log2FC.html')
saveWidget(p,
file = file.path(fpo, fn),
selfcontained = TRUE)
fn = paste0(tissue, '-', o.l., '_log2FC.txt')
write.table(leaf.horm.log2FC,
file = file.path(fpo, fn),
append = FALSE,
quote = FALSE,
sep = "\t",
eol = "\n",
na = "NA",
dec = ".",
row.names = TRUE,
col.names = TRUE,
qmethod = 'escape',
fileEncoding = "UTF-8")rm(list=setdiff(ls(), c('pheno',
'horm'
)))
gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 4068236 217.3 7732358 413.0 7732358 413.0
## Vcells 6865578 52.4 14786712 112.9 12255594 93.6
source('01_f-ctions.R')gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 4078639 217.9 7732358 413.0 7732358 413.0
## Vcells 6874023 52.5 14786712 112.9 12255594 93.6
tissue = 'Leaves'
o.l. = 'Metabolomics'fpi = file.path('..', 'input')
fn = 'data_metabolomics.txt'
met = data.table::fread(file.path(fpi, fn), header = TRUE)
data.table::setDF(met)
met = merge(pheno,
met,
by = 'SampleName',
all.x = FALSE,
all.y = TRUE)
met = met[, -grep('SampleName', colnames(met))]
met$SamplingDay = as.numeric(met$SamplingDay)
met$Treatment = factor(met$Treatment)
met = met[order(met$Treatment, met$SamplingDay, met$PlantNo), ]Repat procedure as for Hormonomics
rm(list=setdiff(ls(), c('pheno',
'horm',
'met'
)))
gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 4068261 217.3 7732358 413.0 7732358 413.0
## Vcells 6860258 52.4 14786712 112.9 12255594 93.6
source('01_f-ctions.R')gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 4078706 217.9 7732358 413.0 7732358 413.0
## Vcells 6875020 52.5 14786712 112.9 12255594 93.6
tissue = 'Leaves'
o.l. = 'Transcriptomics'fpi = file.path('..', 'input')
fn = 'data_qPCR.txt'
qPCR = data.table::fread(file.path(fpi, fn), header = TRUE)
data.table::setDF(qPCR)
qPCR = merge(pheno,
qPCR,
by = 'SampleName',
all.x = FALSE,
all.y = TRUE)
qPCR = qPCR[, -grep('SampleName', colnames(qPCR))]
qPCR$SamplingDay = as.numeric(qPCR$SamplingDay)
qPCR$Treatment = factor(qPCR$Treatment)
qPCR = qPCR[order(qPCR$Treatment, qPCR$SamplingDay, qPCR$PlantNo), ]Repat procedure as for Hormonomics and Metabolomics
rm(list=setdiff(ls(), c('pheno',
'horm',
'met',
'qPCR'
)))
gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 4068326 217.3 7732358 413.0 7732358 413.0
## Vcells 6861077 52.4 14786712 112.9 12255594 93.6
source('01_f-ctions.R')gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 4078771 217.9 7732358 413.0 7732358 413.0
## Vcells 6875847 52.5 14786712 112.9 12255594 93.6
save.image(file = "01.RData")colM = colnames(met)
colT = colnames(qPCR)
colH = colnames(horm)
omics = merge(qPCR, met,
by = c("Treatment", "SamplingDay", "PlantNo"),
all.x = FALSE, all.y = FALSE)
omics = merge(omics, horm,
by = c("Treatment", "SamplingDay", "PlantNo"),
all.x = FALSE, all.y = FALSE)
omics$SamplingDay = as.numeric(omics$SamplingDay)
keep2 = grep("Treatment|SamplingDay|PlantNo", colnames(omics), invert = TRUE)
MT = intersect(keep2,
which(colnames(omics) %in% c(colM, colT)))
MH = intersect(keep2,
which(colnames(omics) %in% c(colM, colH)))
TH = intersect(keep2,
which(colnames(omics) %in% c(colT, colH)))“cor” Plots a correlation network. Runs cov2cor if input is detected to be a covariance matrix and plots the input as is
“pcor” Plots a partial correlation network, using cor2pcor from the parcor package (Kraemer, Schaefer and Boulesteix, 2009) on the input matrix
“glasso” Will run EBICglasso to obtain an optimal sparse estimate of the partial correlation matrix using the glasso package (Friedman, Hastie and Tibshirani, 2011)
cormat = cor(as.matrix(omics[, keep2]), use = 'na.or.complete')
qgraph::qgraph(cormat,
shape='circle',
posCol='darkred',
negCol='darkblue',
layout='spring',
vsize = 4,
cut = 0.95,
details = TRUE,
curveAll = TRUE,
title = 'Omics',
minimum = 0.70,
labels = colnames(omics[, keep2]),
label.cex = 1.5)For more options see https://www.rdocumentation.org/packages/qgraph/versions/1.9.3/topics/qgraph
devtools::session_info()## - Session info ---------------------------------------------------------------
## setting value
## version R version 4.1.2 (2021-11-01)
## os Windows 10 x64 (build 19044)
## system x86_64, mingw32
## ui RTerm
## language (EN)
## collate English_United Kingdom.1252
## ctype English_United Kingdom.1252
## tz Europe/Prague
## date 2023-01-10
## pandoc 2.19.2 @ C:/Program Files/RStudio/bin/quarto/bin/tools/ (via rmarkdown)
##
## - Packages -------------------------------------------------------------------
## package * version date (UTC) lib source
## abind 1.4-5 2016-07-21 [1] CRAN (R 4.1.1)
## assertthat 0.2.1 2019-03-21 [1] CRAN (R 4.1.3)
## backports 1.4.1 2021-12-13 [1] CRAN (R 4.1.2)
## base64enc 0.1-3 2015-07-28 [1] CRAN (R 4.1.1)
## bigassertr 0.1.5 2021-07-08 [1] CRAN (R 4.1.3)
## bigparallelr 0.3.2 2021-10-02 [1] CRAN (R 4.1.3)
## bigstatsr 1.5.12 2022-10-14 [1] CRAN (R 4.1.3)
## bnlearn 4.8.1 2022-09-21 [1] CRAN (R 4.1.3)
## boot 1.3-28.1 2022-11-22 [1] CRAN (R 4.1.2)
## broom 1.0.1 2022-08-29 [1] CRAN (R 4.1.3)
## bslib 0.4.1 2022-11-02 [1] CRAN (R 4.1.3)
## ca 0.71.1 2020-01-24 [1] CRAN (R 4.1.3)
## cachem 1.0.6 2021-08-19 [1] CRAN (R 4.1.2)
## callr 3.7.3 2022-11-02 [1] CRAN (R 4.1.3)
## car 3.1-1 2022-10-19 [1] CRAN (R 4.1.3)
## carData 3.0-5 2022-01-06 [1] CRAN (R 4.1.3)
## caret * 6.0-93 2022-08-09 [1] CRAN (R 4.1.3)
## checkmate 2.1.0 2022-04-21 [1] CRAN (R 4.1.3)
## class 7.3-20 2022-01-13 [1] CRAN (R 4.1.2)
## classInt 0.4-8 2022-09-29 [1] CRAN (R 4.1.3)
## cli 3.4.1 2022-09-23 [1] CRAN (R 4.1.2)
## cluster 2.1.4 2022-08-22 [1] CRAN (R 4.1.3)
## codalm 0.1.2 2021-07-26 [1] CRAN (R 4.1.3)
## codetools 0.2-18 2020-11-04 [1] CRAN (R 4.1.2)
## colorspace 2.0-3 2022-02-21 [1] CRAN (R 4.1.2)
## Compositional * 6.0 2022-11-12 [1] CRAN (R 4.1.3)
## corpcor 1.6.10 2021-09-16 [1] CRAN (R 4.1.1)
## corrplot * 0.92 2021-11-18 [1] CRAN (R 4.1.3)
## cowplot 1.1.1 2020-12-30 [1] CRAN (R 4.1.3)
## crayon * 1.5.2 2022-09-29 [1] CRAN (R 4.1.3)
## crosstalk 1.2.0 2021-11-04 [1] CRAN (R 4.1.3)
## data.table 1.14.6 2022-11-16 [1] CRAN (R 4.1.2)
## DBI 1.1.3 2022-06-18 [1] CRAN (R 4.1.3)
## dcov 0.1.1 2020-06-25 [1] CRAN (R 4.1.3)
## deldir 1.0-6 2021-10-23 [1] CRAN (R 4.1.1)
## dendextend 1.16.0 2022-07-04 [1] CRAN (R 4.1.3)
## DEoptimR 1.0-11 2022-04-03 [1] CRAN (R 4.1.3)
## devtools 2.4.5.9000 2022-11-23 [1] Github (r-lib/devtools@aa3f88b)
## digest 0.6.30 2022-10-18 [1] CRAN (R 4.1.3)
## Directional 5.6 2022-09-22 [1] CRAN (R 4.1.3)
## doParallel 1.0.17 2022-02-07 [1] CRAN (R 4.1.2)
## dplyr 1.0.10 2022-09-01 [1] CRAN (R 4.1.3)
## e1071 1.7-12 2022-10-24 [1] CRAN (R 4.1.3)
## ellipsis 0.3.2 2021-04-29 [1] CRAN (R 4.1.2)
## emplik 1.2 2022-07-03 [1] CRAN (R 4.1.3)
## energy 1.7-10 2022-04-19 [1] CRAN (R 4.1.3)
## equalCovs * 1.0 2018-04-25 [1] CRAN (R 4.1.1)
## evaluate 0.18 2022-11-07 [1] CRAN (R 4.1.3)
## fansi 1.0.3 2022-03-24 [1] CRAN (R 4.1.3)
## farver 2.1.1 2022-07-06 [1] CRAN (R 4.1.3)
## fastmap 1.1.0 2021-01-25 [1] CRAN (R 4.1.2)
## fdrtool 1.2.17 2021-11-13 [1] CRAN (R 4.1.2)
## FlexDir 1.0 2017-03-16 [1] CRAN (R 4.1.3)
## flock 0.7 2016-11-12 [1] CRAN (R 4.1.3)
## foreach 1.5.2 2022-02-02 [1] CRAN (R 4.1.2)
## foreign 0.8-83 2022-09-28 [1] CRAN (R 4.1.3)
## Formula * 1.2-4 2020-10-16 [1] CRAN (R 4.1.1)
## fs 1.5.2 2021-12-08 [1] CRAN (R 4.1.2)
## future 1.29.0 2022-11-06 [1] CRAN (R 4.1.3)
## future.apply 1.10.0 2022-11-05 [1] CRAN (R 4.1.3)
## generics 0.1.3 2022-07-05 [1] CRAN (R 4.1.2)
## ggplot2 * 3.4.0 2022-11-04 [1] CRAN (R 4.1.3)
## ggpubr * 0.5.0 2022-11-16 [1] CRAN (R 4.1.3)
## ggsignif 0.6.4 2022-10-13 [1] CRAN (R 4.1.3)
## glasso 1.11 2019-10-01 [1] CRAN (R 4.1.1)
## glmnet 4.1-4 2022-04-15 [1] CRAN (R 4.1.3)
## globals 0.16.2 2022-11-21 [1] CRAN (R 4.1.2)
## glue 1.6.2 2022-02-24 [1] CRAN (R 4.1.3)
## gmp 0.6-8 2022-11-09 [1] CRAN (R 4.1.3)
## gower 1.0.0 2022-02-03 [1] CRAN (R 4.1.2)
## gridExtra 2.3 2017-09-09 [1] CRAN (R 4.1.2)
## gsl 2.1-7.1 2021-11-02 [1] CRAN (R 4.1.2)
## gtable 0.3.1 2022-09-01 [1] CRAN (R 4.1.3)
## gtools 3.9.3 2022-07-11 [1] CRAN (R 4.1.3)
## hardhat 1.2.0 2022-06-30 [1] CRAN (R 4.1.3)
## heatmaply * 1.4.0 2022-10-08 [1] CRAN (R 4.1.3)
## highr 0.9 2021-04-16 [1] CRAN (R 4.1.2)
## Hmisc * 4.7-2 2022-11-18 [1] CRAN (R 4.1.3)
## htmlTable 2.4.1 2022-07-07 [1] CRAN (R 4.1.2)
## htmltools 0.5.3 2022-07-18 [1] CRAN (R 4.1.3)
## htmlwidgets * 1.5.4 2021-09-08 [1] CRAN (R 4.1.2)
## httpuv 1.6.6 2022-09-08 [1] CRAN (R 4.1.3)
## httr 1.4.4 2022-08-17 [1] CRAN (R 4.1.3)
## igraph 1.3.5 2022-09-22 [1] CRAN (R 4.1.3)
## interp 1.1-3 2022-07-13 [1] CRAN (R 4.1.3)
## ipred 0.9-13 2022-06-02 [1] CRAN (R 4.1.3)
## iterators 1.0.14 2022-02-05 [1] CRAN (R 4.1.2)
## jpeg 0.1-9 2021-07-24 [1] CRAN (R 4.1.1)
## jquerylib 0.1.4 2021-04-26 [1] CRAN (R 4.1.2)
## jsonlite 1.8.3 2022-10-21 [1] CRAN (R 4.1.2)
## KernSmooth 2.23-20 2021-05-03 [1] CRAN (R 4.1.2)
## knitr 1.41 2022-11-18 [1] CRAN (R 4.1.3)
## labeling 0.4.2 2020-10-20 [1] CRAN (R 4.1.1)
## later 1.3.0 2021-08-18 [1] CRAN (R 4.1.3)
## lattice * 0.20-45 2021-09-22 [1] CRAN (R 4.1.2)
## latticeExtra 0.6-30 2022-07-04 [1] CRAN (R 4.1.2)
## lava 1.7.0 2022-10-25 [1] CRAN (R 4.1.3)
## lavaan 0.6-12 2022-07-04 [1] CRAN (R 4.1.3)
## lazyeval 0.2.2 2019-03-15 [1] CRAN (R 4.1.3)
## lifecycle 1.0.3 2022-10-07 [1] CRAN (R 4.1.3)
## listenv 0.8.0 2019-12-05 [1] CRAN (R 4.1.3)
## lubridate 1.9.0 2022-11-06 [1] CRAN (R 4.1.3)
## magrittr * 2.0.3 2022-03-30 [1] CRAN (R 4.1.3)
## MASS 7.3-58.1 2022-08-03 [1] CRAN (R 4.1.2)
## Matrix 1.5-3 2022-11-11 [1] CRAN (R 4.1.3)
## MatrixModels 0.5-1 2022-09-11 [1] CRAN (R 4.1.3)
## mda 0.5-3 2022-05-05 [1] CRAN (R 4.1.3)
## memoise 2.0.1 2021-11-26 [1] CRAN (R 4.1.2)
## mgcv 1.8-41 2022-10-21 [1] CRAN (R 4.1.3)
## mime 0.12 2021-09-28 [1] CRAN (R 4.1.1)
## miniUI 0.1.1.1 2018-05-18 [1] CRAN (R 4.1.3)
## mixture 2.0.5 2022-09-23 [1] CRAN (R 4.1.3)
## mnormt 2.1.1 2022-09-26 [1] CRAN (R 4.1.2)
## ModelMetrics 1.2.2.2 2020-03-17 [1] CRAN (R 4.1.3)
## munsell 0.5.0 2018-06-12 [1] CRAN (R 4.1.2)
## NlcOptim 0.6 2019-01-18 [1] CRAN (R 4.1.3)
## nlme 3.1-160 2022-10-10 [1] CRAN (R 4.1.3)
## nnet 7.3-18 2022-09-28 [1] CRAN (R 4.1.3)
## numDeriv 2016.8-1.1 2019-06-06 [1] CRAN (R 4.1.1)
## parallelly 1.32.1 2022-07-21 [1] CRAN (R 4.1.3)
## pbapply 1.6-0 2022-11-16 [1] CRAN (R 4.1.3)
## pbivnorm 0.6.0 2015-01-23 [1] CRAN (R 4.1.1)
## pchc 0.8 2022-06-18 [1] CRAN (R 4.1.3)
## pdist * 1.2.1 2022-05-02 [1] CRAN (R 4.1.3)
## permute 0.9-7 2022-01-27 [1] CRAN (R 4.1.3)
## pheatmap 1.0.12 2019-01-04 [1] CRAN (R 4.1.2)
## pillar 1.8.1 2022-08-19 [1] CRAN (R 4.1.3)
## pkgbuild 1.3.1 2021-12-20 [1] CRAN (R 4.1.2)
## pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 4.1.2)
## pkgload 1.3.2 2022-11-16 [1] CRAN (R 4.1.3)
## plotly * 4.10.1 2022-11-07 [1] CRAN (R 4.1.3)
## plyr 1.8.8 2022-11-11 [1] CRAN (R 4.1.3)
## png 0.1-7 2013-12-03 [1] CRAN (R 4.1.1)
## prettyunits 1.1.1 2020-01-24 [1] CRAN (R 4.1.2)
## pROC 1.18.0 2021-09-03 [1] CRAN (R 4.1.3)
## processx 3.8.0 2022-10-26 [1] CRAN (R 4.1.3)
## prodlim 2019.11.13 2019-11-17 [1] CRAN (R 4.1.3)
## profvis 0.3.7 2020-11-02 [1] CRAN (R 4.1.3)
## promises 1.2.0.1 2021-02-11 [1] CRAN (R 4.1.3)
## proxy 0.4-27 2022-06-09 [1] CRAN (R 4.1.3)
## ps 1.7.2 2022-10-26 [1] CRAN (R 4.1.3)
## psych * 2.2.9 2022-09-29 [1] CRAN (R 4.1.3)
## purrr 0.3.5 2022-10-06 [1] CRAN (R 4.1.3)
## qgraph 1.9.2 2022-03-04 [1] CRAN (R 4.1.3)
## quadprog 1.5-8 2019-11-20 [1] CRAN (R 4.1.1)
## quantreg 5.94 2022-07-20 [1] CRAN (R 4.1.3)
## R6 2.5.1 2021-08-19 [1] CRAN (R 4.1.2)
## RANN 2.6.1 2019-01-08 [1] CRAN (R 4.1.3)
## RColorBrewer * 1.1-3 2022-04-03 [1] CRAN (R 4.1.3)
## Rcpp 1.0.9 2022-07-08 [1] CRAN (R 4.1.2)
## RcppAlgos 2.6.0 2022-08-15 [1] CRAN (R 4.1.3)
## RcppZiggurat 0.1.6 2020-10-20 [1] CRAN (R 4.1.3)
## recipes 1.0.3 2022-11-09 [1] CRAN (R 4.1.3)
## registry 0.5-1 2019-03-05 [1] CRAN (R 4.1.1)
## remotes 2.4.2 2021-11-30 [1] CRAN (R 4.1.2)
## reshape2 1.4.4 2020-04-09 [1] CRAN (R 4.1.3)
## Rfast 2.0.6 2022-02-16 [1] CRAN (R 4.1.3)
## Rfast2 0.1.3 2022-03-23 [1] CRAN (R 4.1.3)
## rgl 0.110.2 2022-09-26 [1] CRAN (R 4.1.3)
## rlang 1.0.6.9000 2022-11-23 [1] Github (r-lib/rlang@7ab31df)
## rmarkdown 2.18 2022-11-09 [1] CRAN (R 4.1.3)
## rnaturalearth 0.1.0 2017-03-21 [1] CRAN (R 4.1.3)
## robustbase 0.95-0 2022-04-02 [1] CRAN (R 4.1.3)
## rpart 4.1.19 2022-10-21 [1] CRAN (R 4.1.3)
## rstatix * 0.7.1 2022-11-09 [1] CRAN (R 4.1.3)
## rstudioapi 0.14 2022-08-22 [1] CRAN (R 4.1.3)
## sass 0.4.3 2022-11-19 [1] CRAN (R 4.1.2)
## scales * 1.2.1 2022-08-20 [1] CRAN (R 4.1.3)
## seriation 1.4.0 2022-10-21 [1] CRAN (R 4.1.2)
## sessioninfo 1.2.2 2021-12-06 [1] CRAN (R 4.1.2)
## sf 1.0-9 2022-11-08 [1] CRAN (R 4.1.3)
## shape 1.4.6 2021-05-19 [1] CRAN (R 4.1.1)
## shiny 1.7.3 2022-10-25 [1] CRAN (R 4.1.3)
## sn 2.1.0 2022-08-11 [1] CRAN (R 4.1.3)
## sp 1.5-1 2022-11-07 [1] CRAN (R 4.1.3)
## SparseM 1.81 2021-02-18 [1] CRAN (R 4.1.1)
## SQUAREM 2021.1 2021-01-13 [1] CRAN (R 4.1.3)
## stringi 1.7.8 2022-07-11 [1] CRAN (R 4.1.2)
## stringr 1.4.1 2022-08-20 [1] CRAN (R 4.1.3)
## survival * 3.4-0 2022-08-09 [1] CRAN (R 4.1.3)
## tibble 3.1.8 2022-07-22 [1] CRAN (R 4.1.3)
## tidyr 1.2.1 2022-09-08 [1] CRAN (R 4.1.3)
## tidyselect 1.2.0 2022-10-10 [1] CRAN (R 4.1.3)
## timechange 0.1.1 2022-11-04 [1] CRAN (R 4.1.3)
## timeDate 4021.106 2022-09-30 [1] CRAN (R 4.1.3)
## TSP 1.2-1 2022-07-14 [1] CRAN (R 4.1.3)
## units 0.8-0 2022-02-05 [1] CRAN (R 4.1.3)
## urlchecker 1.0.1 2021-11-30 [1] CRAN (R 4.1.3)
## usethis 2.1.6 2022-05-25 [1] CRAN (R 4.1.3)
## utf8 1.2.2 2021-07-24 [1] CRAN (R 4.1.2)
## vctrs 0.5.1 2022-11-16 [1] RSPM (R 4.1.0)
## vegan 2.6-4 2022-10-11 [1] CRAN (R 4.1.3)
## viridis * 0.6.2 2021-10-13 [1] CRAN (R 4.1.2)
## viridisLite * 0.4.1 2022-08-22 [1] CRAN (R 4.1.3)
## webshot 0.5.4 2022-09-26 [1] CRAN (R 4.1.3)
## withr 2.5.0 2022-03-03 [1] CRAN (R 4.1.2)
## xfun 0.35 2022-11-16 [1] CRAN (R 4.1.3)
## xtable 1.8-4 2019-04-21 [1] CRAN (R 4.1.2)
## yaml 2.3.6 2022-10-18 [1] CRAN (R 4.1.3)
##
## [1] C:/mzInstall/R/R-4.1.2/library
##
## ------------------------------------------------------------------------------